1. Field of the Invention
The invention relates generally to virtualized storage systems and more specifically relates to apparatus and methods within a controller of a virtualized storage system to manage expanded capacity of a virtual volume.
2. Related Patents
This patent is related to commonly owned U.S. patent application Ser. No. 12/854,800 entitled APPARATUS AND METHODS FOR LOOK-AHEAD VIRTUAL VOLUME META-DATA PROCESSING IN A STORAGE CONTROLLER and is related to commonly owned U.S. patent application Ser. No. 12/845,720 entitled APPARATUS AND METHODS FOR REAL-TIME ROUTING OF RECEIVED COMMANDS IN A SPLIT-PATH ARCHITECTURE STORAGE, both of which are hereby incorporated by reference.
3. Discussion of Related Art
A virtualized storage system is one that hides the physical storage devices and functions of the storage system from attached host systems (e.g., from “initiators”). Virtual volumes (also referred to as “logical volumes”) are defined and managed by a controller associated with the virtualized storage system. The physical devices associated with such virtual volumes are generally completely hidden from attached hosts. The virtual capacity of a virtual volume may be dynamically altered and provisioning of physical storage to provide the virtual capacity may be reconfigured at any time by the controller associated with the virtualized storage system.
Earlier specifications for storage systems incorporated an inherent 2 terabyte limit on the capacity of a virtual volume. Primarily this limitation arose from the limitations of SCSI command block structures that were previously limited to 10 bytes including a 32 bit logical block address (LBA) field. This command structure is sometimes referred to as Read(10)/Write(10). Therefore, a single SCSI LUN using 512 byte block size (typical) cannot span more than 2 terabytes of capacity. File systems that have been used on these systems have been “adjusted” to handle extremely large volumes. However, volumes that are nearing the 2 terabyte limit may be stressing the limits of the file system. SCSI standards are evolving to include command structures with 16 bytes including a corresponding larger LBA field. These command structures are sometimes referred to as Read(16)/Write(16). Virtual volumes using these larger command structures (with larger LBA fields) could now be specified with much larger capacities.
The controller associated with such virtualized storage systems includes features to map logical addresses supplied in received SCSI command blocks into corresponding physical storage locations (mapping a logical address to one or more physical target storage devices and corresponding physical block addresses on the one or more physical target storage devices). Some existing storage controller designs have mapping structures and methods that presume the earlier 2 terabyte limit for the size of the virtual volume. For example, some older storage controllers may have been designed to process only Read(10)/Write(10) SCSI commands. Such controllers are faced with a problem to alter their designs to support larger virtual volume capacities based on, for example, Read(16)/Write(16) SCSI command structures. In some controllers, the problem may be addressed by logically combining multiple 2 terabyte volumes to provide a virtual volume exceeding the 2 terabyte limits. Each 2 terabyte volume is managed separately within the older controller and a higher layer of logic (i.e., controller software) maintains a corresponding mapping structure for each of the 2 terabyte volumes. Managing each of multiple mapping structures for each of multiple 2 terabyte volumes adds overhead processing to the storage controller and thus reduces storage system performance. More generally, as the capacity of virtual volumes increases, the size and complexity of corresponding mapping structures increases and the overhead processing (i.e., latency) in managing these large volume mapping structures increases accordingly.
Thus, it is an ongoing challenge to improve (i.e., reduce) the overhead processing associated with virtual to physical mapping for virtual volumes having ever larger capacities beyond the older 2 terabyte limits.